#ifndef PROTOCOLE_SERVEUR
#define PROTOCOLE_SERVEUR
#include "../fiche.h"
#include "../serveur/liste_simplement_chaine.h"


/*
 * attend l'arrivée d'un message et traite la data a l'aide des autre fonctions
 * [ 000 Contact ]              -> serveur_ajout()
 * [ 001 Contact Identifiant ]  -> serveur_modification()
 * [ 011 Nom ]                  -> serveur_consultation()
 * [ 010 Identifiant ]          -> serveur_suppression()
 */
int serveur_ecoute(liste annuaire);


/*
 * ajoute un nouveau contact à l'annuaire
 * message à recevoir   :   [ 000 Contact ]
 * message à envoyer    :   [ 100 1 "Contact Bien ajouté" ]
 * message d'erreur     :   [ 100 0 "CODE_ERREUR" "description" ]
 * */
int serveur_ajout( liste annuaire);

/*
 * modifie un contact présent dans l'annuaire
 * message à recevoir   :   [ 001 Contact Idenfifiant ]
 * message à envoyer    :   [ 100 1 "Contact bien modifié" ]
 * message d'erreur     :   [ 100 0 "CODE_ERREUR" "description" ]
 */
int serveur_modification( liste annuaire);

/*
 * consulte les contact présent dans l'annuaire à l'aide du nom
 * message à recevoir   :   [ 011 NOM ]
 * message à envoyer    :   [ 101 Contact Idenfifiant ]
 *                          ... 
 *                          [ 101 Contact Idenfifiant ]
 *                          [ 100 1 "Liste des contact envoyé" ]
 * message d'erreur     :   [ 100 0 "CODE_ERREUR" "description" ]
 */
int serveur_consultation(liste annuaire);

/*
 * supprime un contact de l'annuaire a l'aide de l'identifiant
 * message à recevoir   :   [ 010 Idenfifiant ]
 * message à envoyer    :   [ 100 1 "Contact supprimé"
 * message d'erreur     :   [ 100 0 "CODE_ERREUR" "description" ]
 */
int serveur_suppression( liste annuaire );


#endif
